Today many enterprises now use cloud-based computing platforms that allow services and data to be accessed over the Internet (or via other networks). Infrastructure providers of these cloud-based computing platforms offer network-based processing systems that often support multiple enterprises (or tenants) using common computer hardware and data storage. This “cloud” computing model allows applications to be provided over a platform “as a service” supplied by the infrastructure provider. The infrastructure provider typically abstracts the underlying hardware and other resources used to deliver a customer-developed application so that the customer no longer needs to operate and support dedicated server hardware. The cloud computing model can often provide substantial cost savings to the customer over the life of the application because the customer no longer needs to provide dedicated network infrastructure, electrical and temperature controls, physical security and other logistics in support of dedicated server hardware.
Many cloud-based applications are generated based on data that is accessed from storage, and then delivered to a user system such as a mobile device or desktop computer. It is desirable to speed up the process of accessing data that is needed by an application to improve performance and improve user experience with the application.
Many users today have multiple computing devices at their disposal. For instance, a particular user might have a mobile device, a smartphone, a laptop, a desktop, a tablet, etc. The particular user might use any one of these at any time depending on numerous factors such as where they are located, due to device characteristics like network connectivity and available battery power, and/or other factors such as convenience, awareness of other users, etc.